{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### K维向量的归一化指数函数（Softmax）计算 ###\n",
    "\n",
    "$$f(x) = \\frac{\\exp(x_i)}{\\sum_j \\exp(x_j)}$$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Python implementation\n",
    "import math\n",
    "z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]\n",
    "z_exp = [math.exp(i) for i in z]  \n",
    "sum_z_exp = sum(z_exp)  \n",
    "softmax = [round(i / sum_z_exp, 3) for i in z_exp]\n",
    "softmax\n",
    "# Result: [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Your assignment:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 2., 3., 4., 1., 2., 3.])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# NumPy implementation\n",
    "z = np.array([1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0])\n",
    "z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2.71828183,  7.3890561 , 20.08553692, 54.59815003,  2.71828183,\n",
       "        7.3890561 , 20.08553692])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "114.98389973429897"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(np.exp(z))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.02364054, 0.06426166, 0.1746813 , 0.474833  , 0.02364054,\n",
       "       0.06426166, 0.1746813 ])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.exp(z) / sum(np.exp(z))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 网格内任意两点间距离的计算\n",
    "\n",
    "计算(-5, -5), (-5, 5), (5, 5), (5, -5)围成的方格内，每0.01单位分别作1000条水平($y=-5, y=-4.99, y=-4.98...,y=4.99$)、垂直直线($x=-5, x=-4.99, x=-4.98...x=4.99$)，计算任意两直线交点到原点的距离"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x13d7a170>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Python implementation\n",
    "import math\n",
    "xs = [p / 100 for p in range(-500, 500, 1)]\n",
    "ys = [p / 100 for p in range(-500, 500, 1)]\n",
    "ans = []\n",
    "for x in xs:\n",
    "    l = []\n",
    "    for y in ys:\n",
    "        l.append(math.sqrt(x ** 2 + y ** 2))\n",
    "    ans.append(l)\n",
    "plt.imshow(ans, cmap=plt.cm.gray)\n",
    "plt.colorbar()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x145c3ad0>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# better Python implementation\n",
    "import math\n",
    "import itertools\n",
    "lines = [p / 100 for p in range(-500, 500, 1)]\n",
    "ans = []\n",
    "l = []\n",
    "for idx, (x, y) in enumerate(itertools.product(lines, lines)):\n",
    "    l.append(math.sqrt(x ** 2 + y ** 2))\n",
    "    if idx % 1000 == 999:\n",
    "        ans.append(l)\n",
    "        l = []\n",
    "plt.imshow(ans, cmap=plt.cm.gray)\n",
    "plt.colorbar()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Your assignment: finish the NumPy implementation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "points = np.arange(-5, 5, 0.01)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "xs, ys = np.meshgrid(points, points)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],\n",
       "       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],\n",
       "       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],\n",
       "       ...,\n",
       "       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],\n",
       "       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],\n",
       "       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-5.  , -5.  , -5.  , ..., -5.  , -5.  , -5.  ],\n",
       "       [-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99],\n",
       "       [-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98],\n",
       "       ...,\n",
       "       [ 4.97,  4.97,  4.97, ...,  4.97,  4.97,  4.97],\n",
       "       [ 4.98,  4.98,  4.98, ...,  4.98,  4.98,  4.98],\n",
       "       [ 4.99,  4.99,  4.99, ...,  4.99,  4.99,  4.99]])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ys"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x14dcca90>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "z = np.sqrt(xs ** 2 + ys **2)\n",
    "plt.imshow(z, cmap=plt.cm.gray)\n",
    "plt.colorbar()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 判断数组是否为递增序\n",
    "\n",
    "如$[1, 2, 3]$为递增数组，$[1, 1, 2]$、$[3, 2, 1]$等均不是递增数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "# Python implementation\n",
    "def test(a):\n",
    "    for idx in range(len(a) - 1):\n",
    "        if a[idx] >= a[idx + 1]:\n",
    "            return False\n",
    "    return True\n",
    "print(test([1, 2, 3]))\n",
    "print(test([1, 1, 2]))\n",
    "print(test([3, 2, 1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "# Better Python implementation\n",
    "def test(a):\n",
    "    judgement = [x < y for x, y in zip(a[:-1], a[1:])]\n",
    "    return all(judgement)\n",
    "print(test([1, 2, 3]))\n",
    "print(test([1, 1, 2]))\n",
    "print(test([3, 2, 1]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Your assignment:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "False\n",
      "False\n"
     ]
    }
   ],
   "source": [
    "# NumPy implementation:\n",
    "def test(a):\n",
    "    a = np.asarray(a)\n",
    "    return np.all(a[:-1] < a[1:])\n",
    "print(test([1, 2, 3]))\n",
    "print(test([1, 1, 2]))\n",
    "print(test([3, 2, 1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
